package csu.web.mypetstore.service;
import csu.web.mypetstore.domain.Cart;
import csu.web.mypetstore.domain.CartItem;
import csu.web.mypetstore.domain.Item;
import csu.web.mypetstore.persistence.CartDao;
import csu.web.mypetstore.persistence.ItemDao;
import csu.web.mypetstore.persistence.impl.CartDaoImpl;
import csu.web.mypetstore.persistence.impl.ItemDaoImpl;

import java.util.List;

public class CartService {
    private ItemDao itemDao;
    private CartDao cartDao;
    public CartService()
    {
        itemDao=new ItemDaoImpl();
        cartDao=new CartDaoImpl();
    }
    //创建用户的购物车
    public Cart createCart(String username)
    {
        Cart cart=new Cart();
        List<CartItem> cartItemList=cartDao.getItemsByUserID(username);
        //对List中的商品
        for(CartItem cartItem:cartItemList)
        {
            boolean isInStock=itemDao.getInventoryQuantity(cartItem.getItemid())>0;
            Item item=itemDao.getItem(cartItem.getItemid());
            cartItem.setInStock(isInStock);
            cartItem.setItem(item);
            cart.addCartItem(cartItem);
        }
        return cart;
    }
    public void addItemToCart(String username,String itemid)
    {
        int quantity=cartDao.containsItem(username, itemid);
        if(quantity==0)
        {
            cartDao.insertItem(username,itemid);
        }
        else {
            cartDao.updateCartItem(username,itemid,quantity+1);
        }
    }
    public void updateCart(String username,String itemid,int quantity)
    {
        cartDao.updateCartItem(username, itemid, quantity);
    }
    public void removeItem(String username,String itemid)
    {
        cartDao.removeItemById(username, itemid);
    }
    public void clearCart(String username)
    {
        cartDao.clearCartItems(username);
    }
}
